﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Biblioteca.Utils;
using SERIX.Util;

namespace SERIX
{
    public partial class OpcoesQuestoesManut : Seguranca
    {

        string _operacao;
        string _idt_tiq;
        string _idt_cat;
        string _idt_que;
        string _seq_opcao;
        string _idt_tiq_mestre = "";
        string _idt_cat_mestre = "";
        string _idt_que_mestre = "";
        string _filtro = "";

        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnLoad(e);
            _operacao = Request["OP"];
            if (!String.IsNullOrEmpty(Request["idt_tiq"]))
            {
                _idt_tiq = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_tiq"]));
            }
            if (!String.IsNullOrEmpty(Request["idt_cat"]))
            {
                _idt_cat = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_cat"]));
            }
            if (!String.IsNullOrEmpty(Request["idt_que"]))
            {
                _idt_que = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_que"]));
            }
            if (!String.IsNullOrEmpty(Request["seq_opcao"]))
            {
                _seq_opcao = Server.UrlDecode(Criptografia.Descriptografar(Request["seq_opcao"]));
            }
            if (!String.IsNullOrEmpty(Request["idt_tiq_mestre"]) && !String.IsNullOrEmpty(Request["idt_cat_mestre"]) && !String.IsNullOrEmpty(Request["idt_que_mestre"]))
            {
                _idt_tiq_mestre = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_tiq_mestre"]));
                _idt_cat_mestre = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_cat_mestre"]));
                _idt_que_mestre = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_que_mestre"]));
                _idt_tiq = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_tiq_mestre"]));
                _idt_cat = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_cat_mestre"]));
                _idt_que = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_que_mestre"]));
                _filtro = "?idt_tiq=" + Server.UrlEncode(Request["idt_tiq_mestre"]) + "&idt_cat=" + Server.UrlEncode(Request["idt_cat_mestre"]) + "&idt_que=" + Server.UrlEncode(Request["idt_que_mestre"]);
            }

            

            if (!Page.IsPostBack)
            {
                CQuestoes questao = CQuestoes.PesquisaporCodigo(_idt_tiq, _idt_cat, _idt_que, UsuAut.Login);
                if (questao.Tpo_vinc.Equals("S"))
                {
                    trAberto.Visible = true;
                    trDDL.Visible = false;
                    rfvDSC_QUE_DDL.Enabled = false;
                }
                else
                {
                    trAberto.Visible = false;
                    trDDL.Visible = true;
                    rfvDSC_QUE_TB.Enabled = false;
                    BiblioSERIX.PreencherDdl(ref ddlDescricoesOpcoes, CDescricoesOpcoes.PesquisaporTpoVinc(questao.Tpo_vinc, UsuAut.Login), "DESCRICAO", "IDT_DESC");
                }
                switch (_operacao)
                {
                    case "R":
                        {
                            lblTitulo.Text = "Detalhes do Opção de Questão";
                            Cancelar_Button.Visible = false;
                            COpcoesQuestoes opcoesquestoes = COpcoesQuestoes.PesquisaporCodigo(_idt_tiq, _idt_cat, _idt_que, _seq_opcao, UsuAut.Login);
                            ddlDescricoesOpcoes.SelectedValue = opcoesquestoes.Idt_desc;
                            tbDSC_OPCAO.Text = opcoesquestoes.Dsc_opcao;
                            DesabilitaControles();
                            break;
                        }
                    case "U":
                        {
                            lblTitulo.Text = "Alteração de Opção de Questão";
                            COpcoesQuestoes opcoesquestoes = COpcoesQuestoes.PesquisaporCodigo(_idt_tiq, _idt_cat, _idt_que, _seq_opcao, UsuAut.Login);
                            ddlDescricoesOpcoes.SelectedValue = opcoesquestoes.Idt_desc;
                            tbDSC_OPCAO.Text = opcoesquestoes.Dsc_opcao;
                            break;

                        }
                    case "I":
                        {
                            tbDSC_OPCAO.Focus();
                            lblTitulo.Text = "Inserção de Opção de Questão";
                            break;
                        }
                    case "D":
                        {
                            lblTitulo.Text = "Exclusão de Opção de Questão";
                            COpcoesQuestoes opcoesquestoes = COpcoesQuestoes.PesquisaporCodigo(_idt_tiq, _idt_cat, _idt_que, _seq_opcao, UsuAut.Login);
                            ddlDescricoesOpcoes.SelectedValue = opcoesquestoes.Idt_desc;
                            tbDSC_OPCAO.Text = opcoesquestoes.Dsc_opcao;
                            DesabilitaControles();
                            break;
                        }
                    default: break;
                }
                
            }
        }

        protected void DesabilitaControles()
        {
            ddlDescricoesOpcoes.Enabled = false;
            ddlDescricoesOpcoes.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
            ddlDescricoesOpcoes.BackColor = System.Drawing.Color.WhiteSmoke;
            tbDSC_OPCAO.Enabled = false;
            tbDSC_OPCAO.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
            tbDSC_OPCAO.BackColor = System.Drawing.Color.WhiteSmoke;
        }

        protected void Ok_Button_Click(object sender, EventArgs e)
        {
            try
            {
                
                COpcoesQuestoes opcoesquestoes;

                if (!String.IsNullOrEmpty(_idt_tiq) && !String.IsNullOrEmpty(_idt_cat) && !String.IsNullOrEmpty(_idt_que) && _operacao[0].Equals('I'))
                {
                    _seq_opcao = COpcoesQuestoes.ObterNovoIdt(_idt_tiq, _idt_cat, _idt_que, UsuAut.Login).ToString();
                }

                string idt_desc = "";
                CQuestoes questao = CQuestoes.PesquisaporCodigo(_idt_tiq, _idt_cat, _idt_que, UsuAut.Login);
                if (!questao.Tpo_vinc.Equals("S"))
                {
                    idt_desc = ddlDescricoesOpcoes.SelectedValue;
                }

                opcoesquestoes = new COpcoesQuestoes(_idt_tiq, _idt_cat, _idt_que, _seq_opcao, idt_desc, tbDSC_OPCAO.Text);
                switch (_operacao)
                {
                    case "I":
                        {
                            opcoesquestoes.Inserir(UsuAut.Login);
                            break;
                        }
                    case "U":
                        {
                            opcoesquestoes.Alterar(UsuAut.Login);
                            break;
                        }
                    case "D":
                        {
                            opcoesquestoes.Excluir(UsuAut.Login);
                            break;
                        }
                    default: break;
                }
                Response.Redirect("OpcoesQuestoes.aspx" + _filtro);
            }
            catch (Exception ex)
            {
                lblErro.Text = "*Erro: " + ex.Message;
                lblErro.Visible = true;
            }
        }

        protected void Cancelar_Button_Click(object sender, EventArgs e)
        {
            Response.Redirect("OpcoesQuestoes.aspx" + _filtro);
        }
    }
}
